package com.yiyuplatform.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.*;

import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * @Description
 * @Author dalong
 * @Date 2021-11-08
 */

@Getter
@Setter
@ToString
@NoArgsConstructor
@EqualsAndHashCode
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}, ignoreUnknown = true)
@Entity
@Table(name = "t_userinfo")
public class TUserinfo implements Serializable {
    private static final long serialVersionUID = 5764067299252466493L;

    /**
     * 用户微信OpenID，在插入数据使用uuid()生成ID
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "CI_ID")
    private String ciId;

    /**
     * 用户昵称，微信昵称
     */
    @Column(name = "CI_NKNAME")
    private String ciNkname;

    /**
     * 用户类型(面向用户 1.普通用户 2.医生)
     */
    @Column(name = "CI_PERSONTYPE")
    private Long ciPersontype;

    /**
     * 用户真实姓名
     */
    @Column(name = "CI_REALNAME")
    private String ciRealname;

    /**
     * 用户身份证号
     */
    @Column(name = "CI_ID_CARD")
    private String ciIdCard;

    /**
     * 用户手机号
     */
    @Column(name = "CI_PHONENUMBER")
    private String ciPhonenumber;

    /**
     * 用户性别
     */
    @Column(name = "CI_SEX")
    private String ciSex;

    /**
     * 注册日期
     */
    @Column(name = "CI_SIGNUPDATE")
    private Timestamp ciSignupdate;

    /**
     * 用户状态（1.已认证 2.未认证 3.封禁）
     */
    @Column(name = "CI_STATUS")
    private String ciStatus;

    /**
     * 用户头像（url）
     */
    @Column(name = "CI_PROFILE")
    private String ciProfile;

    /**
     * 用户等级（面向系统 1.普通用户/2.普通管理员/3.超级管理员）
     */
    @Column(name = "CI_LEVEL")
    private Long ciLevel;

    /**
     * 敏感数据获取的时间戳, 开发者可以用于数据时效性校验
     */
    @Column(name = "CI_TIMESTAMP")
    private Timestamp ciTimestamp;

}
